"""
数据库初始化脚本
创建数据库表
"""
import sys
import os

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from database.connection import init_database, drop_all_tables
from utils.logger import app_logger

# 重要：必须导入所有 ORM 模型，让它们注册到 Base.metadata
from database.orm_models import FaceORM  # noqa: F401


def main():
    """主函数"""
    print("=" * 60)
    print("数据库初始化脚本")
    print("=" * 60)

    choice = input("\n请选择操作:\n1. 初始化数据库（创建表）\n2. 删除所有表（危险！）\n请输入(1/2): ")

    if choice == "1":
        print("\n正在初始化数据库...")
        try:
            init_database()
            print("✓ 数据库初始化成功！")
        except Exception as e:
            print(f"✗ 数据库初始化失败: {e}")
            sys.exit(1)

    elif choice == "2":
        confirm = input("\n⚠️  警告：此操作将删除所有数据！是否继续？(yes/no): ")
        if confirm.lower() == "yes":
            print("\n正在删除所有表...")
            try:
                drop_all_tables()
                print("✓ 所有表已删除")
            except Exception as e:
                print(f"✗ 删除失败: {e}")
                sys.exit(1)
        else:
            print("操作已取消")
    else:
        print("无效的选择")

    print("\n完成！")


if __name__ == "__main__":
    main()
